package main

import (
	"fmt"
	"net"
	"sync"
)

//解决黏包问题
// 1. 客户端发送一次就断开连接，需要发送数据的时候再次连接，典型如http。下面用golang演示一下这个过程，确实不会出现粘包问题。
// 2. 包头+数据的格式，根据包头信息读取到需要分析的数据。
func main() {
	var wg sync.WaitGroup
	for i := 0; i < 100; i++ {
		wg.Add(1)
		conn, err := net.Dial("tcp", "127.0.0.1:7000")
		if err != nil {
			fmt.Println("dial failed, err", err)
			return
		}
		go sender1_2(&wg, conn)
	}
	wg.Wait()
}
func sender1_2(wg *sync.WaitGroup, conn net.Conn) {
	defer wg.Done()
	defer conn.Close() // 关闭连接
	words := "{\"Id\":1,\"Name\":\"golang\",\"Message\":\"message\"}"
	conn.Write([]byte(words))
}
